package com.heima.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.article.dtos.ArticleHomeDto;
import com.heima.model.article.dtos.ArticleInfoDto;
import com.heima.model.article.pojos.ApArticle;
import com.heima.model.comment.dtos.CommentManageDto;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.mess.ArticleVisitStreamMess;

import java.util.Map;

/**
 * ClassName: ApArticleService
 * Description:
 * date: 2023/8/5 0005 17:56
 *
 * @author zHan
 */
public interface ApArticleService extends IService<ApArticle> {

    /**
     * 加载页面
     * @param articleHomeDto
     * @param type 1:加载更多 2：加载最新
     * @return
     */
    ResponseResult load(ArticleHomeDto articleHomeDto, Short type);

    /**
     * 保存app端相关文章
     * @param dto
     * @return
     */
    ResponseResult saveArticle(ArticleDto dto);

    /**
     * 加载文章行为
     * @param dto
     * @return
     */
    ResponseResult loadArticleBehavior(ArticleInfoDto dto);

    /**
     * 加载首页
     * @param dto
     * @param type 1:加载更多 2：加载最新
     * @param homePage true：是首页 false 不是首页
     * @return
     */
    ResponseResult loadHomePage(ArticleHomeDto dto, Short type, boolean homePage);

    /**
     * 更新文章分值，同时更新redis缓存
     * @param mess
     */
    void updateScore(ArticleVisitStreamMess mess);

    /**
     * 查询评论列表
     * @param dto
     * @return
     */
    ResponseResult findNewsComments(CommentManageDto dto);

    /**
     * 管理端统计数据
     * @param map
     * @return
     */
    ResponseResult getNewsDimension(Map<String, String> map);

    /**
     * 查询统计内容
     * @param map
     * @return
     */
    ResponseResult getNewPage(Map<String, String> map);
}
